The present invention relates to EFM (Eight to Fourteen Modulation) encoders for use in a minidisc system and the like and, more particularly, to an EFM encoder with the function of calculating DSV (Digital Sum Variation) as an index for selecting merging bits which connect individual frame signals to each other. The present invention also relates to DSV calculators for calculating, in EFM, DSV as an index for selecting merging bits which connect individual frame signals to each other and, more particularly, to a DSV calculator capable of calculating DSV with a higher accuracy than was previously possible.
EFM is a modulation method used in the recording of audio data on an optical disc in a minidisc system or the like.
FIG. 13(a) shows a part of a translation table used in EFM and a signal waveform presented by EFM-modulated data. As shown in the drawing, EFM is for converting digital data originally composed of 8 bits to a pattern of 14 bits. The bit pattern of the original 8-bit data has 256 (=2.sup.8) variations to be compatible with individual data.
In the EFM-modulated data, the symbol "0" represents retention of polarity ("H" or "L") in the immediately preceding data, not the low level, while the symbol "1" represents inversion of porality, not the high level. Therefore, as shown in FIG. 13(a), the signal waveform presented by the EFM-modulated data makes a transition depending on whether the porality in the final bit of the immediately preceding data is "H" or "L".
EFM is required in the recording of audio data on an optical disc since the frequency band in the pick-up mechanism of the optical disc is limited. Accordingly, if the length of a pit indented in the optical disc is extremely short, it becomes difficult to read the audio data therefrom. To prevent the difficulty, original audio data is converted to data in which two or more "0s" are interposed between every two adjacent "1s". Since the 14-bit pattern has 16384 (=2.sup.14) variations, 256 variations compliant with the rule of two or more "0s" between every two adjacent "1s" are selected therefrom, which constitute the translation table for EFM.
In an actual EFM encoder, inputted serial data is divided into 8-bit sets, each of which is converted to 14-bit frame data in accordance with the translation table for EFM, while a 24-bit frame synchronize signal is placed after every specified number of sets of frame data. Between the two adjacent sets of frame data or between the frame data and the frame synchronize signal is interposed merging bits.
A description will be given below to the merging bits.
Even when the original audio data is converted to the data in which two or more "0s" are interposed between every two adjacent "1s", there may be cases where the rule of two or more "0s" between every two adjacent "1s" is not satisfied in a connection between different sets of data.
For example, if the final bit of a certain set of data is "1" and the leading bit of the following set of data is "1", two consecutive "1s" are observed when the two sets of data are connected to each other, which does not satisfy the rule of two or more "0s" between every two adjacent "1s". To avoid this, EFM has used data composed of 3 bits in order to connect two sets of data to each other. The connecting 3 bits are termed merging bits.
Since the merging-bit data is composed of 3 bits, 8 (=2.sup.3) bit patterns exist. Of the 8 bit patterns, only four patterns of "000", "100", "010", and "001" are suitable for actual use, since the other four patterns of "111", "110", "101", and "011"are incompatible with the rule of two or more "0s" between every two adjacent "1s" for EFM. From the four available patterns, the optimum one is selected as the merging bits for each connection.
The selection of the merging bits is performed as follows. First, the patterns of the merging bits which are compliant with the rule of two or more "0s" between every two adjacent "1s" are selected based on the final bit pattern of the preceding set of data and on the leading bit pattern of the following set of data.
In the case where the latter three bits of the preceding set of data are "011" and the former three bits of the following set of data are "100", for example, only "000" can be used as the merging bits. In the case where the latter three bits of the preceding set of data is "100" and the former three bits of the following set of data is "001", each of the four patterns of "000", "100", "010", and "001" can be used as the merging bits.
If a plurality of patterns can be used as the merging bits, the optimum one is selected therefrom based on the value of DSV.
Here, a description will be given to DSV (Digital Sum Variation).
DSV represents an unbalance in a direct-current component of the modulated data, which can be calculated considerably easily in practice. To provide DSV, it is sufficient to substitute +1 for each segment of the signal waveform of the EFM-modulated data that remains in the high level for a unit period of time, substitute -1 for each segment thereof that remains in the low level for the unit period of time, and calculate the sum of these values.
FIG. 13(b) is a view illustrating a method of selecting the merging bits based on the value of DSV. In the drawing, since the final bit pattern of the preceding set of data is "010" and the leading bit pattern of the following set of data is "001", the three patterns of "000", "010", and "001" can be used as the merging bits. Hence, the value of DSV has been calculated in each of the cases where "000" is selected, where "010" is selected, and where "001" is selected. Here, it is assumed that DSV in the final bit of the immediately preceding set of data (hereinafter referred to as cumulative DSV) is -3. It is also assumed that the porality in the final bit of the immediately preceding set of data (hereinafter referred to as a cumulative polarity) is "H".
In the case where "000" is selected, DSV of the merging bits is 3, while the polarity in the final bit of the merging bits is "H". Accordingly, DSV of the following set of data becomes +2, while DSV in the final bit of the following set of data (hereinafter referred to as new cumulative DSV) becomes +2. In the case where "010" is selected, DSV of the merging bits is -1, while the polarity in the final bit of the merging bits is "L". Accordingly, DSV of the following set of data becomes -2, while new cumulative DSV becomes -6. In the case where "001" is selected, DSV of the merging bits is +1, while the polarity in the final bit of the merging bits is "L". Accordingly, DSV of the following set of data becomes -2, while new cumulative DSV becomes -4.
In terms of tone quality and like factor, it is preferable that the value of DSV is maximumly approximated to 0 . Consequently, "000" is selected here as the merging bits so that new DSV becomes closest to 0.
However, the conventional EFM encoder presents the following problem.
Since the EFM encoder is generally used in digital audio processing, it is not required to calculate DSV at a remarkably high speed. It is sufficient to perform the process of calculating DSV in accordance with the flow of audio data, so that a reduction in circuit scale of the DSV calculator becomes the top priority issue.
The calculation of DSV is performed by either a serial method or a parallel method. In the serial method, DSV is sequentially calculated for individual bits of EFM-modulated data from the leading one first. In the parallel method, on the other hand, DSV is calculated by preliminarily calculating DSV for each of the frame synchronize signal, frame data, and merging-bit data and adding each value of DSV to the value of cumulative DSV.
In the case of using the serial method, the algorithm of DSV calculation itself is comparatively simple. However, since DSV is an index for selecting merging bits, the DSV calculator is also required to perform the function of distinguishing among the frame synchronize signal, the frame data, and the merging-bit data in the EFM-modulated data, i.e., the function of indicating the beginning and ending positions of each data, in addition to the function of calculating DSV. Consequently, the DSV calculator is disadvantageously increased in circuit scale, though the algorithm of DSV calculation itself is comparatively simple.
In the case of using the parallel method, on the other hand, it becomes necessary to perform the function of selecting correct DSV in consideration of the polarity of the immediately preceding data. Consequently, the DSV calculator is also increased in circuit scale unless the circuit design is adequately designed, similarly to the serial method.
There are also other problems as described below.
The maximum and minimum values of cumulative DSV data are determined by the number of bits representing the cumulative-DSV data. For example, if cumulative DSV is represented by 8 bits, it follows that only the decimal numbers of "-128" to "127" can be represented thereby. In practice, however, there may be cases where the cumulative DSV data is over the maximum value and where the cumulative DSV data is under the minimum value, resulting in so-called overflow and underflow.
If the maximum value of cumulative DSV data is outputted as new cumulative DSV data when overflow has occurred in the cumulative DSV data or if the minimum data of cumulative DSV data is outputted as new cumulative DSV data when underflow has occurred in the cumulative DSV data, there may be an error between correct cumulative DSV data and the new cumulative DSV data, and that it will never be corrected.
FIG. 14 are graphs each showing a variation in cumulative-DSV data, of which FIG. 14(a) shows the case where overflow has not occurred and FIG. 14(b) shows the case where overflow has occurred. The symbol .largecircle. represents cumulative DSV data obtained from a DSV calculator and the symbol .quadrature. represents corrected cumulative DSV data after overflow has occurred. Since it has been assumed here that the cumulative DSV data is represented by 8 bits, the maximum value thereof becomes "127", so that overflow occurs when the cumulative DSV data exceeds "127".
As shown in FIG. 14(a), when overflow has not occurred, there is no error between cumulative DSV data actually obtained and correct cumulative DSV data. However, when overflow has occurred as shown in FIG. 14(b), the cumulative DSV data is corrected to the maximum value of "127", so that an error may occur thereafter between the cumulative DSV data actually obtained and the correct cumulative DSV data and will never be corrected. On the contrary, it will become larger every time overflow occurs.